/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package futbol.tacticas.concursantes.dcanolop;

import futbol.tacticas.Comando;
import futbol.tacticas.ComandoIrA;
import futbol.tacticas.ComandoPase;
import futbol.tacticas.ComandoTiroAPuerta;
import futbol.tacticas.SituacionJugadores;
import java.awt.Point;
import java.util.Vector;

/**
 *
 * @author Daniel Esteban Cano
 */
public class Arquero extends Jugador{
    private double yMaxPorteria;
    private double yMinPorteria;
    
    public Arquero(double x, double y, int fuerza, int numero, double yMaxPorteria, double yMinPorteria){
        super(x, y, fuerza, numero);
        this.yMaxPorteria=yMaxPorteria;
        this.yMinPorteria=yMinPorteria;
    }   

    @Override
    public Vector<Comando> getComandosDefensa(SituacionJugadores sj, int quienTienePelota) {
        return getComandosBusquedaBalon(sj, quienTienePelota);
    }

    @Override
    public Vector<Comando> getComandosAtaque(SituacionJugadores sj, int quienTienePelota) {
        Vector<Comando> comandos=new Vector<Comando>();
        Point punto;
        if(quienTienePelota==getNumero()){
            punto=sj.getBola();
            int numeroJugador=getNumJugadorPase(sj); //mirar a quien debo pasar
            if(numeroJugador>=0){
                comandos.addElement(new ComandoPase(getNumero(), numeroJugador));    
            }else{
                comandos.addElement(new ComandoTiroAPuerta(getNumero(), 10));
            }
        }else{
            double posY=sj.getBola().getY();
            if(posY>yMaxPorteria){
                posY=yMaxPorteria;
            }
            if(posY<yMinPorteria){
                posY=yMinPorteria;
            }
            comandos.addElement(new ComandoIrA(getNumero(), this.posXInicial, posY));
        }
        return comandos;
    }

    @Override
    public Vector<Comando> getComandosBusquedaBalon(SituacionJugadores sj, int quienTienePelota) {
        Vector<Comando> comandos=new Vector<Comando>();
        Point punto;
        if(quienTienePelota==getNumero()){
            punto=sj.getBola();
            comandos.addElement(new ComandoIrA(getNumero(),punto.getX(), punto.getY()));//va donde el balon y chuta
            int numeroJugador=getNumJugadorPase(sj); //mirar a quien debo pasar
            if(numeroJugador>=0){
                comandos.addElement(new ComandoPase(getNumero(), numeroJugador));    
            }else{
                comandos.addElement(new ComandoTiroAPuerta(getNumero(), 10));
            }
        }else{
            double posY=sj.getBola().getY();
            if(posY>yMaxPorteria){
                posY=yMaxPorteria;
            }
            if(posY<yMinPorteria){
                posY=yMinPorteria;
            }
            comandos.addElement(new ComandoIrA(getNumero(), this.posXInicial, posY));
        }
        return comandos;
    }
}












